共计 1482 个字符,预计需要花费 4 分钟才能阅读完成。
引入
1. 硬链接与软连接
Linux 系统中有软链接和硬链接两种特殊的 " 文件 "
2.inode
是什么
⛅要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西
⛅当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即 inode 区 和data block(实际数据放置在数据区域中)
⛅这个 inode 即是(目录、档案)文件 在一个 文件系统 中的 唯一标识,需要访问这个文件的时候必须先找到并读取这个 文件的 inode
⛅Inode 里面存储了文件的很多重要参数,其中 唯一标识 称作 Inumber
⛅ 其他信息: 创建时间(ctime)、修改时间(mtime)、文件大小、属主、归属的用户组、读写权限、数据所在 block 号等信息。
⛅查看一个文件的元数据: "# stat [文件名]"
一. 软连接
1. 什么是软链接
可以看成是 Windows 中的 快捷方式, 可以让你快速链接到目标文件或目录, 它找到的是源文件名, 通过原文件名再找到真实的数据, 它自身有 inode
2. 语法
ln -s [源文件 / 目录路径] [软连接放置的路径及名字]
#设置连接时源文件要使用绝对路径, 不然链接会变红, 无效
3. 软连接示例
- 文件软连接
在 "/tmp" 目录下创建 "/root" 目录下的 "a.txt" 软连接
- 目录软连接
在 "/tmp" 目录下创建 "/root" 目录下的 "/song" 的软连接
二. 硬链接
1. 什么是硬链接
它透过文件系统的 inode 来产生新的 文件名, 注意不是产生新的文件, 换而言之, 就是一个文件使用了多个别名, 这个别名与源文件名都指向源文件的 inode
2. 语法
ln [源文件路径] [硬连接放置的路径及名字]
#目录不能创建硬链接
#不能跨分区系统创建硬链接
3. 硬链接示例
- 文件硬链接
在 "/tmp" 目录下创建 "/root" 目录下的 "a.txt" 的硬链接
- 无法创建目录硬链接
三. 硬链接与软连接的区别
🐼 ln -s 创建软连接, ln 创建硬链接
🐼 目录不能 创建硬链接, 且不能跨 分区系统 创建
🐼 软连接 支持 文件和目录, 且 能跨 分区系统, 常用
🐼 硬链接文件与源文件 inode 相同, 而软连接是不同的
🐼 删除软连接文件和硬链接文件, 对源文件 没有任何的影响
🐼 删除源文件, 软连接 失效 , 硬链接 无影响(还可以访问内容)
🐼 删除源文件和硬链接, 整个文件会被真正的删除
四. 软连接, 硬链接与 拷贝 的区别
1. 软连接
软连接建立的链接文件与源文件并不是同一个文件, 就是一个快捷方式, inode 号也不同
2. 硬链接
硬链接实际上是文件的一个别名, 链接文件和源文件实际上是同一个文件, 修改源文件或者硬链接文件, 相互都会改变
3. 拷贝
复制源文件, 产生一个全新的文件, 与源文件没有关系了, 修改新文件内容与源文件无关
4. 通过 ls -i
来查看 inode
号
查看 inode 可判断是否是同一文件
五. 磁盘空间问题
1. 磁盘满了?
通常指两个方面
- inode 号用完了
- 磁盘空间用完了
- 而通常情况下 inode号是够用的, 磁盘空间经常不够用
2. 当指定磁盘空间满了怎么办?
- df 查看磁盘空间及 inode号使用情况
- 假设 /boot 这个目录关联的磁盘 /dev/sda2空间使用已被使用 100%
- 当你创建文件和写文件的时候都无法操作
- 但是有一些软件或者配置必须在 /boot/data 下才能找到(或者 "/boot" 下的其他目录)
3. 解决方案
- 首先插上一块新的磁盘, 查看磁盘是否存在
- 不格式化 (制作文件系统) 的话会报错
- 格式化新磁盘(制作文件系统) mkfs.ext4 /dev/sdb /mkfs.xfs /dev/sdb
- 然后让 /boot/data关联 (挂载) 上去 mount /dev/sdb /boot/data
- 之后就可以在 /boot/data 里面写文件了, 路径还是这个路径